<?
/*
 *	EXTENSION TICKET
 *
 * 	Verifie si il existe une boite au lettre pour le destinataire et l'expediteur
 *
 */

class Message extends genericClass {
	function Send()
	{
		//On verifie pour l'expediteur
		$this->checkOrCreateMailbox($GLOBALS["Systeme"]->User->Id,"Expediteur");

		//On verifie pour le(s) destinataire(s)
		//Si le destinataire est un groupe
		if (!empty($this->DestGroupes))
		{
			$G = explode(",",$this->DestGroupes);
			for ($i=0;$i<count($G);$i++)
			{

				$Result=$GLOBALS["Systeme"]->Modules["Systeme"]->callData("Group/".$G[$i]."/User");
				for ($j=0;$j<count($Result);$j++)
				{
					$this->checkOrCreateMailbox($Result[$j]["Id"],"Destinataire");
				}
			}
		}else{
			$Destinataires = explode(",",$this->Destinataires);
			for ($i=0;$i<count($Destinataires);$i++)
			{
				$this->checkOrCreateMailbox($Destinataires[$i],"Destinataire");
			}
		}

	}


	function checkOrCreateMailbox($Id,$Type)
	{
		$dID = $this->checkMailbox($Id);
		if ($dID==-1) $dID = $this->createMailbox($Id);
		//On ajoute la clef etrangere pour ce destinataire
		$this->addFkey("Boite",$dID,2,$Type);
		return true;
	}

	function createMailbox($Id)
	{
		$NewBAL = genericClass::createInstance("Messagerie","Boite");
		$NewBAL->Set("User",$Id);
		$Result=$GLOBALS["Systeme"]->Modules["Systeme"]->callData("Systeme/User/$Id");
		$NewBAL->Set("Nom", $Result[0]["Prenom"]." ".$Result[0]["Nom"]." ".$Result[0]["Mail"]);
		$NewBAL->Save();
		return $NewBAL->Get("Id");
	}

	function checkMailbox($Id)
	{
		$Result=$GLOBALS["Systeme"]->Modules["Messagerie"]->callData("Boite/User=".$Id);
		if (!is_array($Result[0])) return -1;
		else return $Result[0]["Id"];
	}
}

?>